package edu.unika.aifb.graphindex.storage;

import java.util.Iterator;
import java.util.List;
import java.util.Set;

import edu.unika.aifb.graphindex.data.Table;

public interface IndexStorageReader {
	public void close() throws StorageException;
	public void reopen() throws StorageException;
	
	public List<String> getDataList(DataField field, String... indexFieldValues) throws StorageException;
	public Set<String> getDataSet(DataField field, String... indexFieldValues) throws StorageException;
	public String getDataItem(String... indexFieldValues) throws StorageException;
	
	public Table<String> getTable(DataField[] columns, String... indexFieldValues) throws StorageException;
	public Table<String> getTable(DataField col1, DataField col2, String... indexFieldValues) throws StorageException;

	public Iterator<String[]> iterator(DataField[] columns) throws StorageException;
	public Iterator<String[]> iterator(DataField[] columns, String... indexFieldValues) throws StorageException;
}
